package request

type PayScoreCompleteResp struct {
	Appid        string `json:"appid"`
	ServiceID    string `json:"service_id"`
	PostPayments []struct {
		Name        string `json:"name"`
		Amount      int    `json:"amount"`
		Description string `json:"description"`
		Count       int    `json:"count"`
	} `json:"post_payments"`
	PostDiscounts []struct {
		Name        string `json:"name"`
		Description string `json:"description"`
		Amount      int    `json:"amount"`
	} `json:"post_discounts"`
	TotalAmount int `json:"total_amount"`
	TimeRange   struct {
		StartTime string `json:"start_time"`
		EndTime   string `json:"end_time"`
	} `json:"time_range"`
	Location struct {
		EndLocation string `json:"end_location"`
	} `json:"location"`
	ProfitSharing bool `json:"profit_sharing"`
}

type PayScoreCompleteReq struct {
	Appid        string          `json:"appid"`
	ServiceId    string          `json:"service_id"`
	PostPayments []PostPayments  `json:"post_payments"`
	TotalAmount  int64           `json:"total_amount"`
	TimeRange    TimeRange       `json:"time_range"`
	Location     LocationAddress `json:"location"`
}

type TimeRange struct {
	EndTime string `json:"end_time"`
}

type LocationAddress struct {
	EndLocation string `json:"end_location"`
}

type PostPayments struct {
	Name        string `json:"name"`
	Amount      int64  `json:"amount"`
	Description string `json:"description"`
}

type PayScoreCompleteReqTH struct {
	Appid        string           `json:"appid"`
	ServiceId    string           `json:"service_id"`
	PostPayments []PostPaymentsTH `json:"post_payments"`
	TotalAmount  int64            `json:"total_amount"`
	TimeRange    TimeRangeTH      `json:"time_range"`
	Location     LocationTH       `json:"location"`
}

type TimeRangeTH struct {
	//StartTime  string `json:"start_time"`
	EndTime string `json:"end_time"`
}

type PostPaymentsTH struct {
	Name   string `json:"name"`
	Amount int64  `json:"amount"`
	Count  int    `json:"count"`
}

type LocationTH struct {
	EndLocation string `json:"end_location"`
}

// MemberInfoReq 微信小程序会员信息更新
type MemberInfoReq struct {
	ErrMsg        string   `form:"errMsg"`
	RawData       string   `form:"rawData"`       // 不包括敏感信息的原始数据字符串，用于计算签名
	UserInfo      UserInfo `form:"userInfo"`      // 用户信息对象，不包含 openid 等敏感信息
	Signature     string   `form:"signature"`     // 签名 (使用 sha1( rawData + sessionkey ) 得到字符串)
	EncryptedData string   `form:"encryptedData"` // 包括敏感数据在内的完整用户信息的加密数据
	Iv            string   `form:"iv"`            // 加密算法的初始向量
	CloudID       string   `form:"cloudID"`       // 敏感数据对应的云 ID，开通云开发的小程序才会返回
	OpenId        string   `form:"openid"`
}

type BindPhoneInfoReq struct {
	ErrMsg        string   `form:"errMsg"`
	RawData       string   `form:"rawData"`       // 不包括敏感信息的原始数据字符串，用于计算签名
	UserInfo      UserInfo `form:"userInfo"`      // 用户信息对象，不包含 openid 等敏感信息
	Signature     string   `form:"signature"`     // 签名 (使用 sha1( rawData + sessionkey ) 得到字符串)
	EncryptedData string   `form:"encryptedData"` // 包括敏感数据在内的完整用户信息的加密数据
	Iv            string   `form:"iv"`            // 加密算法的初始向量
	CloudID       string   `form:"cloudID"`       // 敏感数据对应的云 ID，开通云开发的小程序才会返回
	OpenId        string   `form:"openid"`
	Unionid        string   `form:"unionid"`
	NickName        string   `form:"nickName"`
	Current        int   `form:"current"`
}

type UserInfo struct {
	NickName  string `json:"nickName"`
	Gender    int    `json:"gender"`
	Language  string `json:"language"`
	City      string `json:"city"`
	Province  string `json:"province"`
	Country   string `json:"country"`
	AvatarURL string `json:"avatarUrl"`
}

type WxFixedRemindRss struct {
	TemplateId string `json:"templateId"`
	Openid     string `json:"openid"`
	DeviceSn   string `json:"deviceSn"`
	MemberId   int    `json:"memberId"`
	Type       uint8
}

type WxOrderRemindRss struct {
	TemplateId      string `json:"templateId"`
	OrderId         int    `json:"orderId"`
	CountdownSecond int    `json:"countdownSecond"`
}

type WxUpdateAwardTime struct {
	OrderId int `json:"orderId"`
	Second  int `json:"second"`
}

type ScanLogInsertReq struct {
	Code        string     `json:"code"`
	DeviceSn    string     `json:"deviceSn"`
	PagePath    string     `json:"pagePath"`
	SenceId     string     `json:"senceId"`
}

type WyLogInsertReq struct {
	DeviceSn    string     `json:"deviceSn"`
	AppId       string     `json:"appId"`
	LogType     string     `json:"logType"`
}

type LiveServiceInsertReq struct {
	DeviceSn    string      `json:"deviceSn"`
	AppId       string      `json:"appId"`
	ServiceType  int         `json:"serviceType"`
	ServiceDesc string      `json:"serviceDesc"`
}

type AdIncomeInsertReq struct {

}
